package psn.zjk.career.interview.algorithm;

/**
 * 给定一个由若干 0 和 1 组成的数组 A，我们最多可以将 K 个值从 0 变成 1 。
 * 返回仅包含 1 的最长（连续）子数组的长度。
 *
 * @author zhangjk
 * @CREATE_TIME 2021/2/20 15:46
 */
public class LeetCode1004 {

    public int longestOnes(int[] A, int K) {
        int left = 0, right = 0;
        while (right < A.length) {
            if (A[right++] == 0) K--;
            if (K < 0 && A[left++] == 0) K++;
        }
        return right - left;
    }

    public static void main(String[] args) {
        int[] x = {0, 0, 1, 1, 1, 0, 0};
//        int[] x = {1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0};
        System.out.println(new LeetCode1004().longestOnes(x, 0));
    }
}